package cn.tedu.csmall.product.mapper;

import cn.tedu.csmall.product.pojo.entity.Brand;
import cn.tedu.csmall.product.pojo.vo.BrandListVO;
import cn.tedu.csmall.product.pojo.vo.BrandStandardVO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * ClassName: BrandMapper
 * Package: cn.tedu.csmall.product.mapper
 * Description
 *
 * @Author: 大傻
 * @Create:2022/11/26
 */
@Repository
public interface BrandMapper {
    /**
     *
     * @param brand 插入数据
     * @return 插入成功返回值
     */
    int insert(Brand brand);

    /**
     *
     * @param brands 添加多个数据
     * @return 添加成功的条数
     */
    int insertBatch(List<Brand> brands);

    /**
     *
     * @param id  根据id尝试删除 数据库对应Id的数据
     * @return 返回删除成功的条数
     */
    int deleteById(Long id);

    /**
     *
     * @param id 删除多个id
     * @return 返回删除成功的数量
     */
    int deleteByIds(Long[] id);
    /**
     *
     * @param brand 封装了 要修改的id和 修改后的数据
     * @return 修改成功后的数量 没修改成功返回null
     */
    int update(Brand brand);

    /**
     *
     * @return 返回查询到的数据量
     */
    int count();

    /**
     *
     * @param name 品牌名称
     * @return 查询到的品牌名称数量
     */
    int countByName(String name);

    /**
     *  根据品牌id查不同名 的数据
     * @param id  品牌id
     * @param name 品牌名称
     * @return 查询到的值
     */
    int countByNameAndNotId(@Param("id") Long id, @Param("name") String name);
    /**
     *
     * @param id  根据id查数据
     * @return 查询到的数据
     */
    BrandStandardVO selectById(Long id);

    List<BrandListVO> list();

}
